package ru.products.common.classes;

import ru.products.common.entities.BaseParams;
import ru.products.common.interfaces.CardBehaviour;

/**
 * Класс для дебетовой карты
 */
public class DebitCard extends BaseParams implements CardBehaviour {

    public Double checkBalance() {
        return balance;
    }

    /**
     * В следующих методах по взаимодействию с балансом возможно стоит добавить проверки на
     * неотрицательные значения у параметров 'income' и 'outcome'
     */
    public Double refill(Double income) {
        balance += income;
        return balance;
    }

    /**
     * Метод 'списание средств'. Я предположил, что стоит добавить ограничение на уход в отрицательный баланс у дебетовой карты
     */
    public Double debiting(Double outcome) {
        if (balance - outcome < 0.0) {
            System.out.println("Not enough money");
            return balance;
        } else {
            balance -= outcome;
            return balance;
        }
    }

    public DebitCard(String name, Double balance, String currency) {
        super(name, balance, currency);
    }
}
